package com.atis.warplot.database.utils;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

import com.atis.warplot.database.Construccion;
import com.atis.warplot.database.Unidad;

public class CargadorDatos {

	public static List<Unidad> cargarDatosUnidades(String fileName) //
			/*	*/throws IOException {

		List<Unidad> listaUnidades = new ArrayList<Unidad>();
		Unidad unidad;

		BufferedReader rd = new BufferedReader(new FileReader(fileName));
		String line;
		String[] parsedLine;
		Pattern p = Pattern.compile("(;+)");

		while ((line = rd.readLine()) != null) {

			if (line.trim().equals("")) {
				continue;
			}

			parsedLine = p.split(line);

			if (parsedLine[0].trim().equals("//")) {
				continue;
			}

			String tipo = parsedLine[0];
			String nombre = parsedLine[1];
			double costo = Double.parseDouble(parsedLine[2]);
			int vida = Integer.parseInt(parsedLine[3]);
			int ataque = Integer.parseInt(parsedLine[4]);
			int defensa = Integer.parseInt(parsedLine[5]);
			double velocidad = Double.parseDouble(parsedLine[6]);
			String imagen = parsedLine[7];
			String sonido = parsedLine[8];

			unidad = new Unidad();
			unidad.setTipo(tipo);
			unidad.setNombre(nombre);
			unidad.setCosto(costo);
			unidad.setVida(vida);
			unidad.setAtaque(ataque);
			unidad.setDefensa(defensa);
			unidad.setVelocidad(velocidad);
			unidad.setImagen(imagen);
			unidad.setSonido(sonido);

			listaUnidades.add(unidad);

		}

		return listaUnidades;

	}

	public static List<Construccion> cargarDatosConstucciones(String fileName) //
			/*	*/throws IOException {

		List<Construccion> listaConstrucciones = new ArrayList<Construccion>();
		Construccion construccion;

		BufferedReader rd = new BufferedReader(new FileReader(fileName));
		String line;
		String[] parsedLine;
		Pattern p = Pattern.compile("(;+)");

		while ((line = rd.readLine()) != null) {

			if (line.trim().equals("")) {
				continue;
			}

			parsedLine = p.split(line);

			if (parsedLine[0].trim().equals("//")) {
				continue;
			}

			String nombre = parsedLine[0];
			double costo = Double.parseDouble(parsedLine[1]);
			int vida = Integer.parseInt(parsedLine[2]);
			int ataque = Integer.parseInt(parsedLine[3]);
			int defensa = Integer.parseInt(parsedLine[4]);
			String imagen = parsedLine[5];

			construccion = new Construccion();
			construccion.setNombre(nombre);
			construccion.setCosto(costo);
			construccion.setVida(vida);
			construccion.setAtaque(ataque);
			construccion.setDefensa(defensa);
			construccion.setImagen(imagen);

			listaConstrucciones.add(construccion);

		}

		return listaConstrucciones;

	}

}
